package cc.comac.mom.datahandlers.entity;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import cc.comac.mom.bean.EquipMaterialData;
import cc.comac.mom.dao.entity.EquipMaterialDataDao;
import cc.comac.mom.entity.EquipMaterialDataEntity;
import cc.comac.mom.util.BaseEntityDataUtil;

@Component
@Transactional
public class EquipMaterialDataDataHandler {
	@Autowired
	private EquipMaterialDataDao equipMaterialDataDao;
	@Autowired
	private BaseEntityDataUtil baseEntityDataUtil;
	public int insert(List<EquipMaterialData> equipMaterialDataList) {
		// 保存数据
		if(equipMaterialDataList==null || equipMaterialDataList.size()<1) {
			throw new RuntimeException("未检测到物料主数据！");
		}
		for(EquipMaterialData equipMaterialData:equipMaterialDataList)
		{
			baseEntityDataUtil.setBaseEntityData(equipMaterialData);
		}
		Integer insert = equipMaterialDataDao.insertMaterialBatch(equipMaterialDataList);
		return insert;
	}
	/**
	 * 分页查询
	 * 
	 * @param equipParamItem
	 * @return
	 */
	public EquipMaterialData selectAllByPage(EquipMaterialData equipMaterialData) {
		EquipMaterialData returnEquipMaterialData = new EquipMaterialData();
		if(equipMaterialData.getPageNum()==null || equipMaterialData.getPageNum()==0) {
			equipMaterialData.setPageNum(1);
		}
		if(equipMaterialData.getPageSize()==null || equipMaterialData.getPageSize()==0) {
			equipMaterialData.setPageSize(10);
		}
		
		QueryWrapper<EquipMaterialDataEntity> queryWrapper = new QueryWrapper<EquipMaterialDataEntity>();
		queryWrapper.eq("row_status", 1);
		if(equipMaterialData.getMatnr()!=null && !"".equals(equipMaterialData.getMatnr())) {
			queryWrapper.like("matnr", equipMaterialData.getMatnr());
		}
		if(equipMaterialData.getMaktx()!=null && !"".equals(equipMaterialData.getMaktx())) {
			queryWrapper.like("maktx", equipMaterialData.getMaktx());
		}
		if(equipMaterialData.getMtart()!=null && !"".equals(equipMaterialData.getMtart())) {
			queryWrapper.like("mtart", equipMaterialData.getMtart());
		}
		// 不返回总记录数 设置false
		Page<EquipMaterialDataEntity> page = new Page<>(equipMaterialData.getPageNum(), equipMaterialData.getPageSize(), true);
		IPage<EquipMaterialDataEntity> iPage = equipMaterialDataDao.selectPage(page, queryWrapper);
		System.out.println("总页数:" + iPage.getPages());
		System.out.println("总记录数:" + iPage.getTotal());
		List<EquipMaterialDataEntity> records = iPage.getRecords();
		returnEquipMaterialData.setPageNum(equipMaterialData.getPageNum());
		returnEquipMaterialData.setPageSize(equipMaterialData.getPageSize());
		returnEquipMaterialData.setEntityList(records);
		returnEquipMaterialData.setTotalQuantity((int) iPage.getTotal());
		returnEquipMaterialData.setPageCount((int) iPage.getPages());
		return returnEquipMaterialData;
	}
}
